package com.xxg.renrenproduct.service;

import com.xxg.renrencommon.domain.bean.Product;
import com.xxg.renrencommon.domain.result.BaseResult;
import com.xxg.renrenproduct.domain.query.AddProductCollectionQuery;
import com.xxg.renrenproduct.domain.query.GetCollectionListQuery;

import java.util.List;

/**
 * 类说明
 *
 * @author szj
 * @date 2021/11/30
 */
public interface ProductCollectionService {
    /**
     * 添加商品到收藏
     *
     * @param userId 登录用户id
     * @param query  添加商品到收藏参数
     * @return BaseResult<Void>
     */
    BaseResult<Void> add(String userId, AddProductCollectionQuery query);

    /**
     * 取消商品收藏
     *
     * @param userId 登录用户id
     * @param query  添加商品到收藏参数
     * @return BaseResult<Void>
     */
    BaseResult<Void> cancel(String userId, AddProductCollectionQuery query);

    /**
     * 分页获取收藏列表
     * @param userId 登录用户id
     * @param query 分页获取收藏列表参数
     * @return BaseResult<List<Product>>
     */
    BaseResult<List<Product>> list(String userId, GetCollectionListQuery query);

    /**
     * 根据spu查询收藏
     * @param userId 登录id
     * @param spuId spuId
     * @return BaseResult<List<String>>
     */
    BaseResult<List<String>> listBySpuId(String userId, Integer spuId);
}
